[IA64] Disable ACPI SRAT,SLIT table of dom0.
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Mon, 30 Jul 2007 10:28:16 +0000 (11:28 +0100)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Mon, 30 Jul 2007 10:28:16 +0000 (11:28 +0100)
  On some ia64 NUMA machine, we cannot boot dom0.
  This issue is caused by different infomation LSAPIC and SRAT.
  Xen-ia64 modify LSAPIC IDs of dom0, but it does not modify SRAT.
  So we decide disabling SRAT, SLIT of dom0 as first step of NUMA
  work.

Signed-off-by: Akio Takebe <takebe_akio@jp.fujitsu.com>
xen/arch/ia64/xen/dom_fw_dom0.c

index 4eec44b157f9bdbf50ef1296beb9ce5c4c930021..7cfa69dd51bae39eb03a461dd275627f267be4f5 100644 (file)
@@ -103,6 +103,7 @@ acpi_update_madt_checksum(unsigned long phys_addr, unsigned long size)
 /* base is physical address of acpi table */
 static void __init touch_acpi_table(void)
 {
+       int result;
        lsapic_nbr = 0;
 
        if (acpi_table_parse_madt(ACPI_MADT_LSAPIC, acpi_update_lsapic, 0) < 0)
@@ -111,6 +112,18 @@ static void __init touch_acpi_table(void)
                                  acpi_patch_plat_int_src, 0) < 0)
                printk("Error parsing MADT - no PLAT_INT_SRC entries\n");
 
+       result = acpi_table_disable(ACPI_SRAT);
+       if ( result == 0 )
+               printk("Success Disabling SRAT\n");
+       else if ( result != -ENOENT )
+               printk("ERROR: Failed Disabling SRAT\n");
+
+       result = acpi_table_disable(ACPI_SLIT);
+       if ( result == 0 )
+               printk("Success Disabling SLIT\n");
+       else if ( result != -ENOENT )
+               printk("ERROR: Failed Disabling SLIT\n");
+
        acpi_table_parse(ACPI_APIC, acpi_update_madt_checksum);
 
        return;